#pragma warning(disable:4996)

#ifndef _SFU_CANNY_EDGE_H_
#define _SFU_CANNY_EDGE_H_

#define VERBOSE 0
#define BOOSTBLURFACTOR 90.0
#define NOEDGE 255
#define POSSIBLE_EDGE 128
#define EDGE 0


namespace sfu_canny_edge_detector
{
	void sfu_canny_edge_Gradient(
		unsigned char *image, int rows, int cols,
		float sigma,
		int* delta_x, int* delta_y, float *dir_radians, int *magnitude);
	void sfu_canny_edge_NMS(
		int rows, int cols,
		float tlow, float thigh, unsigned char *edge,
		int* delta_x, int* delta_y, float *dir_radians, int *magnitude);
	void sfu_canny_image(
		unsigned char *image, int rows, int cols, float sigma,
		float tlow, float thigh, unsigned char *edge, float *dir_radians, int *magnitude);
	void sfu_canny_image(
		unsigned char *image, int rows, int cols, float sigma,
		float tlow, float thigh, unsigned char *edge, float *dir_radians, int *magnitude);//char *fname)
	void follow_edges(
		unsigned char *edgemapptr, int *edgemagptr, int lowval, int cols);
};

#endif

